
package com.chongchong.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chongchong.core.mp.base.TenantEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 实体类
 *
 * @author
 */
@Data
@TableName("sys_user")
@EqualsAndHashCode(callSuper = true)
public class User extends TenantEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 主键id
	 */
	@ApiModelProperty(value = "主键")
	@TableId(value = "id", type = IdType.ASSIGN_ID)
	@JsonSerialize(using = ToStringSerializer.class)
	private Long id;


	/**
	 * 编号
	 */
	private String code;
	/**
	 * 账号
	 */
	private String account;
	/**
	 * 密码
	 */
	private String password;

	/**
	 * 密码更新时间（用于判断密码是否过期）
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	private Date passwordUpdate;
	/**
	 * 昵称
	 */
	private String name;
	/**
	 * 真名
	 */
	private String realName;

	/**
	 * 邮箱
	 */
	private String email;
	/**
	 * 状态：０：启用；１：停用
	 */
	private Integer status;
	/**
	 * 手机
	 *//*
	private String phone;
	*//**
	 * 生日
	 *//*
	private Date birthday;
	*//**
	 * 性别
	 *//*
	private Integer sex;
	*//**
	 * 头像
	 *//*
	private String avatar;*/
	/**
	 * 角色id
	 */
	private String roleId;
	/**
	 *用色属性：0：内部用户；１：外部用户 2: 超级管理员等
	 */
	private Integer roleProperty;
	/**
	 * 上级主管
	 */
	private Long parentId;
	/**
	 * 部门id
	 */
	private String deptId;
	/**
	 * 部门id
	 */
	private String postId;

	/**
	 * 创建人
	 */
	@ApiModelProperty(value = "创建人")
	private Long createUserId;

	/**
	 * 创建部门
	 */
	@ApiModelProperty(value = "创建部门")
	private Long createDept;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	private Date createTime;

	/**
	 * 修改人
	 */
	@ApiModelProperty(value = "修改人")
	private Long updateUserId;

	/**
	 * 修改时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	@ApiModelProperty(value = "修改时间")
	private Date updateTime;

	@TableField(exist = false)
	private String oriPassword;

	@ApiModelProperty(value = "用户描述")
	private String userDesc;
}
